package de.mmbbs;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;

/**
 * Klasse stellt Informationen zum Spiellevel bereit.
 * 
 * @author Tony Satura
 * 
 */
public class Level {
	private int lvlNo;
	private LevelListener lvlListener;
	private Paint p = new Paint();
	
	public Level() {
		this.lvlNo = 1;
		
		//Paint konfigurieren
		this.p.setColor(Color.WHITE);
		this.p.setTextSize(22);
		this.p.setTypeface(Typeface.DEFAULT_BOLD);
		this.p.setAntiAlias(true);
	}

	/**
	 * Zeichnet das aktuelle Spiel-Level auf eine Canvas.
	 * 
	 * Zur Zeit werden nur Level zwischen 1 und 99 angezeigt.
	 * Sollte dies erweitert werden, muss ggf. die Positionierung 
	 * des Textes je nach Anzahl der Level-Ziffern angepasst werden.
	 * 
	 */
	public void paint(Canvas c) {
		//Text generieren
		String lvlText = "";
		if (this.lvlNo < 100)
			lvlText = "Level " + this.lvlNo;
		
		//Position auf Canvas bestimmen
		int posX = c.getWidth() - 90;
		
		//Zeichnen
		c.drawText(lvlText, posX, 25, p);
	}
	
	//Getters & Setters
	public void setLevelListener(LevelListener l) {
		this.lvlListener = l;
	}
	
	public int getLevelNo() {
		return lvlNo;
	}

	public void setLevelNo(int levelNo) {
		if(levelNo > 0) {
			this.lvlNo = levelNo;
		}
		else {
			this.lvlNo = 1;
		}
		
		if(this.lvlListener != null) {
			this.lvlListener.nextLevel(this);
		}
	}
}
